﻿using System;
using System.Drawing;
using System.IO;
using ZXing;
using ZXing.Common;
using ZXing.QrCode;
using ZXing.QrCode.Internal;

// 图像文件路径
string imagePath = "D:\\3.jpg";

try
{
    // 加载图像
    {
        // 创建一个通用的解码器实例
        var barcodeReader = new BarcodeReader();

        // 设置解码选项（可选，但推荐）
        barcodeReader.Options = new DecodingOptions
        {
            PossibleFormats = new List<BarcodeFormat> { BarcodeFormat.CODE_128 },
            //AutoRotate = true,
            TryHarder = true
        };
        var bitmap = new Bitmap(imagePath);
        // 使用 BitmapLuminanceSource 将 Bitmap 转换为 ZXing 可识别的格式
        var luminanceSource = new BitmapLuminanceSource(barcodeBitmap);
        Result result = barcodeReader.Decode(luminanceSource);
        // 解码图像

        if (result != null)
        {
            Console.WriteLine("条形码识别成功！");
            Console.WriteLine("类型: " + result.BarcodeFormat.ToString());
            Console.WriteLine("内容: " + result.Text);
        }
        else
        {
            Console.WriteLine("未识别到条形码。");
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine($"发生错误: {ex.Message}");
}
